package com.cyp.blogsystem.mapper;

import com.cyp.blogsystem.model.query.ArticleQuery;
import com.cyp.blogsystem.pojo.Article;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;

@Mapper
public interface ArticleMapper {
    /**
     * 插入文章
     */
    int insert(Article article);

    /**
     * 根据ID查询
     */
    Article selectById(Long id);

    /**
     * 查询文章列表
     */
    List<Article> selectList(ArticleQuery query);

    /**
     * 统计文章总数
     */
    long selectCount(ArticleQuery query);

    /**
     * 更新文章
     */
    int updateById(Article article);

    /**
     * 删除文章
     */
    int deleteById(Long id);

    /**
     * 增加浏览量
     */
    int incrementViewCount(Long id);

    /**
     * 增加点赞数
     */
    int incrementLikeCount(Long id);

    /**
     * 减少点赞数
     */
    int decrementLikeCount(Long id);

    /**
     * 增加评论数
     */
    int incrementCommentCount(Long id);

    /**
     * 减少评论数
     */
    int decrementCommentCount(Long id);
}